@@ -4,6 +4,7 @@ from django.conf import settings  | 
            ||
| 4 | 4 | 
                from django.contrib import admin  | 
            
| 5 | 5 | 
                from django.contrib.auth.hashers import make_password  | 
            
| 6 | 6 | 
                from django_admin import DeleteModelAdmin, ReadOnlyModelAdmin  | 
            
| 7 | 
                +from django_models_ext import ProvinceShortModelMixin  | 
            |
| 7 | 8 | 
                from pysnippets.strsnippets import strip  | 
            
| 8 | 9 | 
                 | 
            
| 9 | 10 | 
                from mch.models import (BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, LatestAppInfo, ModelImageInfo, ModelInfo,  | 
            
                @@ -64,8 +65,9 @@ class ModelImageInfoAdmin(DeleteModelAdmin, admin.ModelAdmin):  | 
            ||
| 64 | 65 | 
                 | 
            
| 65 | 66 | 
                 | 
            
| 66 | 67 | 
                class DistributorInfoAdmin(DeleteModelAdmin, admin.ModelAdmin):  | 
            
| 67 | 
                -    list_display = ('brand_id', 'brand_name', 'distributor_id', 'distributor_name', 'distributor_descr', 'position', 'status', 'created_at', 'updated_at')
               | 
            |
| 68 | 
                +    list_display = ('brand_id', 'brand_name', 'distributor_id', 'distributor_name', 'distributor_descr', 'distributor_province_code', 'distributor_province_name', 'position', 'status', 'created_at', 'updated_at')
               | 
            |
| 68 | 69 | 
                     list_filter = ('brand_name', 'status')
               | 
            
| 70 | 
                +    readonly_fields = ('distributor_province_code', )
               | 
            |
| 69 | 71 | 
                 | 
            
| 70 | 72 | 
                def save_model(self, request, obj, form, change):  | 
            
| 71 | 73 | 
                obj.brand_id = strip(obj.brand_id)  | 
            
                @@ -74,6 +76,8 @@ class DistributorInfoAdmin(DeleteModelAdmin, admin.ModelAdmin):  | 
            ||
| 74 | 76 | 
                except BrandInfo.DoesNotExist:  | 
            
| 75 | 77 | 
                obj.brand_name = ''  | 
            
| 76 | 78 | 
                 | 
            
| 79 | 
                + obj.distributor_province_code = ProvinceShortModelMixin.PROVINCE_NAME_CODE_DICT.get(obj.distributor_province_name, '')  | 
            |
| 80 | 
                +  | 
            |
| 77 | 81 | 
                obj.save()  | 
            
| 78 | 82 | 
                 | 
            
| 79 | 83 | 
                 | 
            
                @@ -0,0 +1,25 @@  | 
            ||
| 1 | 
                +# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                +# Generated by Django 1.11.11 on 2018-05-08 02:58  | 
            |
| 3 | 
                +from __future__ import unicode_literals  | 
            |
| 4 | 
                +  | 
            |
| 5 | 
                +from django.db import migrations, models  | 
            |
| 6 | 
                +  | 
            |
| 7 | 
                +  | 
            |
| 8 | 
                +class Migration(migrations.Migration):  | 
            |
| 9 | 
                +  | 
            |
| 10 | 
                + dependencies = [  | 
            |
| 11 | 
                +        ('mch', '0013_consumeinfosubmitloginfo_test_user'),
               | 
            |
| 12 | 
                + ]  | 
            |
| 13 | 
                +  | 
            |
| 14 | 
                + operations = [  | 
            |
| 15 | 
                + migrations.AddField(  | 
            |
| 16 | 
                + model_name='distributorinfo',  | 
            |
| 17 | 
                + name='distributor_province_code',  | 
            |
| 18 | 
                + field=models.CharField(blank=True, help_text='\u7ecf\u9500\u5546\u6240\u5728\u7701\u4efd\u7f16\u7801', max_length=6, null=True, verbose_name='distributor_province_code'),  | 
            |
| 19 | 
                + ),  | 
            |
| 20 | 
                + migrations.AddField(  | 
            |
| 21 | 
                + model_name='distributorinfo',  | 
            |
| 22 | 
                + name='distributor_province_name',  | 
            |
| 23 | 
                +            field=models.CharField(blank=True, choices=[('\u5317\u4eac', '\u5317\u4eac'), ('\u5929\u6d25', '\u5929\u6d25'), ('\u6cb3\u5317', '\u6cb3\u5317'), ('\u5c71\u897f', '\u5c71\u897f'), ('\u5185\u8499\u53e4', '\u5185\u8499\u53e4'), ('\u8fbd\u5b81', '\u8fbd\u5b81'), ('\u5409\u6797', '\u5409\u6797'), ('\u9ed1\u9f99\u6c5f', '\u9ed1\u9f99\u6c5f'), ('\u4e0a\u6d77', '\u4e0a\u6d77'), ('\u6c5f\u82cf', '\u6c5f\u82cf'), ('\u6d59\u6c5f', '\u6d59\u6c5f'), ('\u5b89\u5fbd', '\u5b89\u5fbd'), ('\u798f\u5efa', '\u798f\u5efa'), ('\u6c5f\u897f', '\u6c5f\u897f'), ('\u5c71\u4e1c', '\u5c71\u4e1c'), ('\u6cb3\u5357', '\u6cb3\u5357'), ('\u6e56\u5317', '\u6e56\u5317'), ('\u6e56\u5357', '\u6e56\u5357'), ('\u5e7f\u4e1c', '\u5e7f\u4e1c'), ('\u5e7f\u897f', '\u5e7f\u897f'), ('\u6d77\u5357', '\u6d77\u5357'), ('\u91cd\u5e86', '\u91cd\u5e86'), ('\u56db\u5ddd', '\u56db\u5ddd'), ('\u8d35\u5dde', '\u8d35\u5dde'), ('\u4e91\u5357', '\u4e91\u5357'), ('\u897f\u85cf', '\u897f\u85cf'), ('\u9655\u897f', '\u9655\u897f'), ('\u7518\u8083', '\u7518\u8083'), ('\u9752\u6d77', '\u9752\u6d77'), ('\u5b81\u590f', '\u5b81\u590f'), ('\u65b0\u7586', '\u65b0\u7586'), ('\u53f0\u6e7e', '\u53f0\u6e7e'), ('\u9999\u6e2f', '\u9999\u6e2f'), ('\u6fb3\u95e8', '\u6fb3\u95e8')], default='\u5317\u4eac', help_text='\u7ecf\u9500\u5546\u6240\u5728\u7701\u4efd\u540d\u79f0', max_length=3, null=True, verbose_name='distributor_province_name'),
               | 
            |
| 24 | 
                + ),  | 
            |
| 25 | 
                + ]  | 
            
                @@ -2,7 +2,7 @@  | 
            ||
| 2 | 2 | 
                 | 
            
| 3 | 3 | 
                from django.db import models  | 
            
| 4 | 4 | 
                from django.utils.translation import ugettext_lazy as _  | 
            
| 5 | 
                -from django_models_ext import BaseModelMixin, upload_file_url, upload_path  | 
            |
| 5 | 
                +from django_models_ext import BaseModelMixin, ProvinceShortModelMixin, upload_file_url, upload_path  | 
            |
| 6 | 6 | 
                from shortuuidfield import ShortUUIDField  | 
            
| 7 | 7 | 
                 | 
            
| 8 | 8 | 
                 | 
            
                @@ -150,6 +150,9 @@ class DistributorInfo(BaseModelMixin):  | 
            ||
| 150 | 150 | 
                distributor_name = models.CharField(_(u'distributor_name'), max_length=255, blank=True, null=True, help_text=u'经销商名称')  | 
            
| 151 | 151 | 
                distributor_descr = models.TextField(_(u'distributor_descr'), max_length=255, blank=True, null=True, help_text=u'经销商描述')  | 
            
| 152 | 152 | 
                 | 
            
| 153 | 
                + distributor_province_code = models.CharField(_(u'distributor_province_code'), max_length=6, blank=True, null=True, help_text=u'经销商所在省份编码')  | 
            |
| 154 | 
                + distributor_province_name = models.CharField(_(u'distributor_province_name'), max_length=3, choices=ProvinceShortModelMixin.PROVINCE_NAME_TUPLE, default=ProvinceShortModelMixin.PROVINCE_DEFAULT_NAME, blank=True, null=True, help_text=u'经销商所在省份名称')  | 
            |
| 155 | 
                +  | 
            |
| 153 | 156 | 
                position = models.IntegerField(_(u'position'), default=1, help_text=u'排序')  | 
            
| 154 | 157 | 
                 | 
            
| 155 | 158 | 
                class Meta:  | 
            
                @@ -7,40 +7,40 @@ from statistic.models import DistributorSaleStatisticInfo, ModelSaleStatisticInf  | 
            ||
| 7 | 7 | 
                 | 
            
| 8 | 8 | 
                 | 
            
| 9 | 9 | 
                 PROVINCE_LIST = {
               | 
            
| 10 | 
                - "110000": "北京市",  | 
            |
| 11 | 
                - "120000": "天津市",  | 
            |
| 12 | 
                - "130000": "河北省",  | 
            |
| 13 | 
                - "140000": "山西省",  | 
            |
| 14 | 
                - "150000": "内蒙古自治区",  | 
            |
| 15 | 
                - "210000": "辽宁省",  | 
            |
| 16 | 
                - "220000": "吉林省",  | 
            |
| 17 | 
                - "230000": "黑龙江省",  | 
            |
| 18 | 
                - "310000": "上海市",  | 
            |
| 19 | 
                - "320000": "江苏省",  | 
            |
| 20 | 
                - "330000": "浙江省",  | 
            |
| 21 | 
                - "340000": "安徽省",  | 
            |
| 22 | 
                - "350000": "福建省",  | 
            |
| 23 | 
                - "360000": "江西省",  | 
            |
| 24 | 
                - "370000": "山东省",  | 
            |
| 25 | 
                - "410000": "河南省",  | 
            |
| 26 | 
                - "420000": "湖北省",  | 
            |
| 27 | 
                - "430000": "湖南省",  | 
            |
| 28 | 
                - "440000": "广东省",  | 
            |
| 29 | 
                - "450000": "广西壮族自治区",  | 
            |
| 30 | 
                - "460000": "海南省",  | 
            |
| 31 | 
                - "500000": "重庆市",  | 
            |
| 32 | 
                - "510000": "四川省",  | 
            |
| 33 | 
                - "520000": "贵州省",  | 
            |
| 34 | 
                - "530000": "云南省",  | 
            |
| 35 | 
                - "540000": "西藏自治区",  | 
            |
| 36 | 
                - "610000": "陕西省",  | 
            |
| 37 | 
                - "620000": "甘肃省",  | 
            |
| 38 | 
                - "630000": "青海省",  | 
            |
| 39 | 
                - "640000": "宁夏回族自治区",  | 
            |
| 40 | 
                - "650000": "新疆维吾尔自治区",  | 
            |
| 41 | 
                - "710000": "台湾省",  | 
            |
| 42 | 
                - "810000": "香港特别行政区",  | 
            |
| 43 | 
                - "820000": "澳门特别行政区"  | 
            |
| 10 | 
                + "110000": "北京",  | 
            |
| 11 | 
                + "120000": "天津",  | 
            |
| 12 | 
                + "130000": "河北",  | 
            |
| 13 | 
                + "140000": "山西",  | 
            |
| 14 | 
                + "150000": "内蒙古",  | 
            |
| 15 | 
                + "210000": "辽宁",  | 
            |
| 16 | 
                + "220000": "吉林",  | 
            |
| 17 | 
                + "230000": "黑龙江",  | 
            |
| 18 | 
                + "310000": "上海",  | 
            |
| 19 | 
                + "320000": "江苏",  | 
            |
| 20 | 
                + "330000": "浙江",  | 
            |
| 21 | 
                + "340000": "安徽",  | 
            |
| 22 | 
                + "350000": "福建",  | 
            |
| 23 | 
                + "360000": "江西",  | 
            |
| 24 | 
                + "370000": "山东",  | 
            |
| 25 | 
                + "410000": "河南",  | 
            |
| 26 | 
                + "420000": "湖北",  | 
            |
| 27 | 
                + "430000": "湖南",  | 
            |
| 28 | 
                + "440000": "广东",  | 
            |
| 29 | 
                + "450000": "广西",  | 
            |
| 30 | 
                + "460000": "海南",  | 
            |
| 31 | 
                + "500000": "重庆",  | 
            |
| 32 | 
                + "510000": "四川",  | 
            |
| 33 | 
                + "520000": "贵州",  | 
            |
| 34 | 
                + "530000": "云南",  | 
            |
| 35 | 
                + "540000": "西藏",  | 
            |
| 36 | 
                + "610000": "陕西",  | 
            |
| 37 | 
                + "620000": "甘肃",  | 
            |
| 38 | 
                + "630000": "青海",  | 
            |
| 39 | 
                + "640000": "宁夏",  | 
            |
| 40 | 
                + "650000": "新疆",  | 
            |
| 41 | 
                + "710000": "台湾",  | 
            |
| 42 | 
                + "810000": "香港",  | 
            |
| 43 | 
                + "820000": "澳门"  | 
            |
| 44 | 44 | 
                }  | 
            
| 45 | 45 | 
                 | 
            
| 46 | 46 | 
                 | 
            
                @@ -15,7 +15,7 @@ django-json-render==1.0.0  | 
            ||
| 15 | 15 | 
                django-json-response==1.1.5  | 
            
| 16 | 16 | 
                django-logit==1.1.2  | 
            
| 17 | 17 | 
                django-mobi==0.1.7  | 
            
| 18 | 
                -django-models-ext==1.1.1  | 
            |
| 18 | 
                +django-models-ext==1.1.4  | 
            |
| 19 | 19 | 
                django-multidomain==1.1.4  | 
            
| 20 | 20 | 
                django-paginator2==1.0.3  | 
            
| 21 | 21 | 
                django-redis-connector==1.0.1  | 
            
                @@ -24,7 +24,7 @@ django-rlog==1.0.7  | 
            ||
| 24 | 24 | 
                django-shortuuidfield==0.1.3  | 
            
| 25 | 25 | 
                django-six==1.0.4  | 
            
| 26 | 26 | 
                django-uniapi==1.0.1  | 
            
| 27 | 
                -django-we==1.3.0  | 
            |
| 27 | 
                +django-we==1.3.8  | 
            |
| 28 | 28 | 
                djangorestframework==3.7.7  | 
            
| 29 | 29 | 
                furl==1.0.1  | 
            
| 30 | 30 | 
                hiredis==0.2.0  | 
            
                @@ -32,7 +32,7 @@ isoweek==1.3.3  | 
            ||
| 32 | 32 | 
                jsonfield==2.0.2  | 
            
| 33 | 33 | 
                mock==2.0.0  | 
            
| 34 | 34 | 
                pysnippets==1.0.5  | 
            
| 35 | 
                -pywe-jssdk==1.0.2  | 
            |
| 35 | 
                +pywe-jssdk==1.1.0  | 
            |
| 36 | 36 | 
                pywe-membercard==1.0.0  | 
            
| 37 | 37 | 
                pywe-miniapp==1.0.2  | 
            
| 38 | 38 | 
                pywe-oauth==1.0.6  | 
            
                @@ -0,0 +1,25 @@  | 
            ||
| 1 | 
                +# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                +# Generated by Django 1.11.11 on 2018-05-08 02:57  | 
            |
| 3 | 
                +from __future__ import unicode_literals  | 
            |
| 4 | 
                +  | 
            |
| 5 | 
                +from django.db import migrations, models  | 
            |
| 6 | 
                +  | 
            |
| 7 | 
                +  | 
            |
| 8 | 
                +class Migration(migrations.Migration):  | 
            |
| 9 | 
                +  | 
            |
| 10 | 
                + dependencies = [  | 
            |
| 11 | 
                +        ('statistic', '0004_auto_20180426_0952'),
               | 
            |
| 12 | 
                + ]  | 
            |
| 13 | 
                +  | 
            |
| 14 | 
                + operations = [  | 
            |
| 15 | 
                + migrations.AlterField(  | 
            |
| 16 | 
                + model_name='provincesalestatisticinfo',  | 
            |
| 17 | 
                + name='province_code',  | 
            |
| 18 | 
                + field=models.CharField(db_index=True, help_text='\u7701\u4efd\u7f16\u7801', max_length=6, verbose_name='province_code'),  | 
            |
| 19 | 
                + ),  | 
            |
| 20 | 
                + migrations.AlterField(  | 
            |
| 21 | 
                + model_name='provincesalestatisticinfo',  | 
            |
| 22 | 
                + name='province_name',  | 
            |
| 23 | 
                + field=models.CharField(blank=True, help_text='\u7701\u4efd\u540d\u79f0', max_length=3, null=True, verbose_name='province_name'),  | 
            |
| 24 | 
                + ),  | 
            |
| 25 | 
                + ]  | 
            
                @@ -93,8 +93,8 @@ class DistributorSaleStatisticInfo(BaseModelMixin):  | 
            ||
| 93 | 93 | 
                 | 
            
| 94 | 94 | 
                 | 
            
| 95 | 95 | 
                class ProvinceSaleStatisticInfo(BaseModelMixin):  | 
            
| 96 | 
                - province_code = models.CharField(_(u'province_code'), max_length=32, help_text=u'省份编码', db_index=True)  | 
            |
| 97 | 
                - province_name = models.CharField(_(u'province_name'), max_length=32, blank=True, null=True, help_text=u'省份名称')  | 
            |
| 96 | 
                + province_code = models.CharField(_(u'province_code'), max_length=6, help_text=u'省份编码', db_index=True)  | 
            |
| 97 | 
                + province_name = models.CharField(_(u'province_name'), max_length=3, blank=True, null=True, help_text=u'省份名称')  | 
            |
| 98 | 98 | 
                ymd = models.IntegerField(_(u'ymd'), default=0, help_text=u'年月日', db_index=True) # 例:20171208, tc.local_string(format='%Y%m%d'), 0 为全部  | 
            
| 99 | 99 | 
                num = models.IntegerField(_(u'num'), default=0, help_text=u'数量')  | 
            
| 100 | 100 | 
                 |